/**
 * ${domainObjectName} API接口
 * 
 * @author Auto Generated
 */
import request from '@/utils/request';

const baseUrl = '/api/v1/${domainObjectName?lower_case}s';

/**
 * 获取${domainObjectName}列表
 * @param {Object} params 查询参数
 * @returns {Promise<Object>} 返回列表数据
 */
export function get${domainObjectName}List(params) {
  return request({
    url: baseUrl,
    method: 'get',
    params
  });
}

/**
 * 获取${domainObjectName}详情
 * @param {string|number} id ${domainObjectName} ID
 * @returns {Promise<Object>} 返回详情数据
 */
export function get${domainObjectName}Detail(id) {
  return request({
    url: `${baseUrl}/${id}`,
    method: 'get'
  });
}

/**
 * 创建${domainObjectName}
 * @param {Object} data ${domainObjectName}数据
 * @returns {Promise<Object>} 返回创建结果
 */
export function create${domainObjectName}(data) {
  return request({
    url: baseUrl,
    method: 'post',
    data
  });
}

/**
 * 更新${domainObjectName}
 * @param {Object} data ${domainObjectName}数据
 * @returns {Promise<Object>} 返回更新结果
 */
export function update${domainObjectName}(data) {
  return request({
    url: `${baseUrl}/${data.id}`,
    method: 'put',
    data
  });
}

/**
 * 删除${domainObjectName}
 * @param {string|number} id ${domainObjectName} ID
 * @returns {Promise<Object>} 返回删除结果
 */
export function delete${domainObjectName}(id) {
  return request({
    url: `${baseUrl}/${id}`,
    method: 'delete'
  });
}

/**
 * 批量删除${domainObjectName}
 * @param {Array<string|number>} ids ID数组
 * @returns {Promise<Object>} 返回批量删除结果
 */
export function batchDelete${domainObjectName}(ids) {
  return request({
    url: `${baseUrl}/batch`,
    method: 'delete',
    data: { ids }
  });
}

<#if specialRequirements?? && specialRequirements?contains("启用")>
/**
 * 启用${domainObjectName}
 * @param {string|number} id ${domainObjectName} ID
 * @returns {Promise<Object>} 返回操作结果
 */
export function enable${domainObjectName}(id) {
  return request({
    url: `${baseUrl}/${id}/enable`,
    method: 'patch'
  });
}

/**
 * 禁用${domainObjectName}
 * @param {string|number} id ${domainObjectName} ID
 * @returns {Promise<Object>} 返回操作结果
 */
export function disable${domainObjectName}(id) {
  return request({
    url: `${baseUrl}/${id}/disable`,
    method: 'patch'
  });
}
</#if>

<#if specialRequirements?? && specialRequirements?contains("审批")>
/**
 * 提交${domainObjectName}审批
 * @param {string|number} id ${domainObjectName} ID
 * @returns {Promise<Object>} 返回操作结果
 */
export function submit${domainObjectName}ForApproval(id) {
  return request({
    url: `${baseUrl}/${id}/submit`,
    method: 'patch'
  });
}

/**
 * 审批${domainObjectName}
 * @param {string|number} id ${domainObjectName} ID
 * @param {Object} data 审批数据
 * @returns {Promise<Object>} 返回操作结果
 */
export function approve${domainObjectName}(id, data) {
  return request({
    url: `${baseUrl}/${id}/approve`,
    method: 'patch',
    data
  });
}

/**
 * 驳回${domainObjectName}
 * @param {string|number} id ${domainObjectName} ID
 * @param {Object} data 驳回数据
 * @returns {Promise<Object>} 返回操作结果
 */
export function reject${domainObjectName}(id, data) {
  return request({
    url: `${baseUrl}/${id}/reject`,
    method: 'patch',
    data
  });
}
</#if>

<#if specialRequirements?? && specialRequirements?contains("导出")>
/**
 * 导出${domainObjectName}Excel
 * @param {Object} params 查询参数
 * @returns {Promise<Blob>} 返回Excel文件流
 */
export function export${domainObjectName}Excel(params) {
  return request({
    url: `${baseUrl}/export`,
    method: 'get',
    params,
    responseType: 'blob'
  });
}
</#if>

<#if specialRequirements?? && specialRequirements?contains("导入")>
/**
 * 导入${domainObjectName}Excel
 * @param {FormData} formData 包含Excel文件的FormData
 * @returns {Promise<Object>} 返回导入结果
 */
export function import${domainObjectName}Excel(formData) {
  return request({
    url: `${baseUrl}/import`,
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
}
</#if>

<#if specialRequirements?? && specialRequirements?contains("分页")>
/**
 * 分页查询${domainObjectName}
 * @param {Object} params 分页参数
 * @returns {Promise<Object>} 返回分页数据
 */
export function page${domainObjectName}(params) {
  return request({
    url: `${baseUrl}/page`,
    method: 'get',
    params
  });
}
</#if>

<#if specialRequirements?? && specialRequirements?contains("统计")>
/**
 * 获取${domainObjectName}统计数据
 * @param {Object} params 查询参数
 * @returns {Promise<Object>} 返回统计数据
 */
export function get${domainObjectName}Statistics(params) {
  return request({
    url: `${baseUrl}/statistics`,
    method: 'get',
    params
  });
}
</#if> 